/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ru.niir.goodfil.ui;

import ru.niir.goodfil.db.Setting;
import ru.niir.goodfil.exceptions.GoodfilSecurityException;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Бин для работы с настройками
 */
public class SettingsBean extends PageBean {
    private String key;
    private String value;

    public SettingsBean() {
    }

    private Map<String, String> settingsMap = null;

    public Map<String, String> getSettingsMap() {
        if (settingsMap == null) {
            settingsMap = new HashMap<String, String>();
            for (Setting setting : gf().getSettings())
                settingsMap.put(setting.getKey(), setting.getValue());
        }
        return settingsMap;
    }

    public boolean getIsClientPreheaderShouldBeRendered() {
        return true;
    }

    /**
     * Возвращает список настроек приложения
     */
    public List<Setting> getSettings() {
        return gf().getSettings();
    }

    /**
     * Установить значение переменной
     */
    public void saveSetting() {
        if (!getSecurityBean().getIsRoleAdministrator())
            throw new GoodfilSecurityException("Только администраторы имеют доступ к настройкам системы");
        gf().set(key, value);
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}
